Attempt to handle HTML descriptions sensibly.
authorrobertl <robertl@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Fri, 7 Jan 2005 18:39:25 +0000 (18:39 +0000)
committerrobertl <robertl@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Fri, 7 Jan 2005 18:39:25 +0000 (18:39 +0000)
gpsbabel/vcf.c

index 157796527840e1298cfc4a9d889a19b19f68919d..76002c986ecaebcda3c69691fb8a310cecf61c02 100644 (file)
@@ -52,13 +52,28 @@ wr_deinit(void)
  * newlines as we go.
  */
 static void
-vcf_print(const char *s)
+vcf_print_utf(const utf_string *s)
 {
-       char *p;
+       char *p, *p2;
+       char *stripped_html;
 
        if (!s)
                return;
 
+       stripped_html = strip_html(s);
+       p = gstrsub(stripped_html, "\n", "\\n");
+       p2 = gstrsub(p, "<p>", "\\n");
+       fputs(p2, file_out);
+       xfree(p);
+       xfree(p2);
+}
+
+static void
+vcf_print(const char *s)
+{
+       char *p;
+       if (!s)
+               return;
        p = gstrsub(s, "\n", "\\n");
        fputs(p, file_out);
        xfree(p);
@@ -86,9 +101,9 @@ vcf_disp(const waypoint *wpt)
        }
 
        fprintf(file_out, "NOTE:");
-       vcf_print(wpt->gc_data.desc_short.utfstring);
+       vcf_print_utf(&wpt->gc_data.desc_short);
        fprintf(file_out, "\\n");
-       vcf_print(wpt->gc_data.desc_long.utfstring);
+       vcf_print_utf(&wpt->gc_data.desc_long);
        fprintf(file_out, "\\n\\nHINT:\\n");
        vcf_print(wpt->gc_data.hint);